#!/bin/bash

# 位置参数
# 运行 Shell 脚本文件时我们可以给它传递一些参数，这些参数在脚本文件内部可以使用 $n 的形式来接收。
# 例如， $1 表示第一个参数，$2 表示第二个参数，依次类推。
# Shell 函数参数的传递和其它编程语言不同，没有所谓的形参和实参，在定义函数时也不用指明参数的名字和数目。
# *换句话说，定义 Shell 函数时不能带参数，但是在调用函数时却可以传递参数，这些传递进来的参数，在函数内部就也使用$n的形式接收，
# 例如，$1 表示第一个参数，$2 表示第二个参数，依次类推。
# *这种通过$n的形式来接收的参数，在 Shell 中称为位置参数。
# *在讲解变量的命名时，我们提到：和变量的命名不同；位置参数却是数字，这和变量的命名规则是相悖的，所以我们将它们视为“特殊变量”。
echo "$1" #当前目录运行附带参数的命令：“sh ./3位置参数.sh 中文【我的母语】” #会输出： 中文【我的母语】 #说明“中文【我的母语】”是“sh ./3位置参数.sh”的第一个参数。 

# 函数传递位置参数
# *如果参数太多，达到或者超过了 10 个，那么就得用${n}的形式来接收了；
# 例如： ${10} 、 ${23} 。 {} 的作用是为了帮助解释器识别参数的边界，这跟使用变量时加 {} 是一样的效果。
function fn() {
  echo "语言是：$1"
}
fn 英语 #当前目录运行“sh ./3位置参数.sh” #输出“语言是：英语”